/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;


import entidades.PoblacionBeneficiada;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import persistencia.Conexion;

/**
 *
 * @author Snailin
 */
public class ManejadorDePoblacionBeneficiada implements Manejador {
   private Conexion conexion=null;
    private static ManejadorDePoblacionBeneficiada instancia=null;
    private ResultSet rs=null;
    private java.sql.PreparedStatement stmt=null;
    private ArrayList<PoblacionBeneficiada>poblacionesBeneficiadas=null;

    public static ManejadorDePoblacionBeneficiada getInstancia() {
        if(instancia==null){
            instancia=new ManejadorDePoblacionBeneficiada();
        }
        return instancia;
    }

    private ManejadorDePoblacionBeneficiada(){
         conexion=Conexion.getInstancia();
    }

   public ArrayList<PoblacionBeneficiada>getPoblacionesBeneficiadas(){
        poblacionesBeneficiadas=new ArrayList<PoblacionBeneficiada>();

        String sql="SELECT * FROM poblacion_beneficiada ";
        stmt= conexion.hacerEnunciado(sql);
        rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {

                PoblacionBeneficiada poblacionBeneficiada=new PoblacionBeneficiada(rs.getInt(1),rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5));
                poblacionesBeneficiadas.add(poblacionBeneficiada);
            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDePoblacionBeneficiada.class.getName()).log(Level.SEVERE, null, ex);
        }
        return poblacionesBeneficiadas;

   }

   public int obtenerUltimoRegistro(){
    int fila=0;
       String sql="SELECT id_poblacion_beneficiada FROM poblacion_beneficiada ORDER BY id_poblacion_beneficiada  DESC LIMIT 1";
   stmt=conexion.hacerEnunciado(sql);
   rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
                fila = rs.getInt(1);
            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDePoblacionBeneficiada.class.getName()).log(Level.SEVERE, null, ex);
        }
   return fila;
   }


    public int agregar(Entidad poblacionBeneficiada) {
       int fila=0;
       String sql="INSERT INTO poblacion_beneficiada (id_poblacion_beneficiada, rango_edad, genero, nivel_economico, nivel_educativo)VALUES (0, ?, ?, ?, ?)";
       stmt=conexion.hacerEnunciado(sql);
        try {
            stmt.setString(1, ((PoblacionBeneficiada) (poblacionBeneficiada)).getRangoEdad());
            stmt.setString(2, ((PoblacionBeneficiada) (poblacionBeneficiada)).getGenero());
            stmt.setString(3, ((PoblacionBeneficiada) (poblacionBeneficiada)).getNivelEconomico());
            stmt.setString(4, ((PoblacionBeneficiada) (poblacionBeneficiada)).getNivelEducativo());
            fila=stmt.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDePoblacionBeneficiada.class.getName()).log(Level.SEVERE, null, ex);
        }
       return fila;
    }

    public int eliminar(int id) {
        int fila=0;
        String sql="DELETE FROM poblacion_beneficiada WHERE id_poblacion_beneficiada = ?";
        stmt=conexion.hacerEnunciado(sql);
        try {
            stmt.setInt(1, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDePoblacionBeneficiada.class.getName()).log(Level.SEVERE, null, ex);
        }
        return fila;
    }

    public int modificar(Entidad poblacionBeneficiada , int id) {
       int fila=0;
       String sql="UPDATE poblacion_beneficiada SET rango_edad = ? , genero = ? , nivel_economico = ? , nivel_educativo = ? WHERE id_poblacion_beneficiada = ?  ";
       stmt=conexion.hacerEnunciado(sql);
          try {
            stmt.setString(1, ((PoblacionBeneficiada) (poblacionBeneficiada)).getRangoEdad());
            stmt.setString(2, ((PoblacionBeneficiada) (poblacionBeneficiada)).getGenero());
            stmt.setString(3, ((PoblacionBeneficiada) (poblacionBeneficiada)).getNivelEconomico());
            stmt.setString(4, ((PoblacionBeneficiada) (poblacionBeneficiada)).getNivelEducativo());
            stmt.setInt(5, id);
            fila=stmt.executeUpdate();

        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDePoblacionBeneficiada.class.getName()).log(Level.SEVERE, null, ex);
        }
       return fila;
    }




}

